/*
 * FileUtils.java
 *
 * Created on March 30, 2006, 11:04 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package sheep.utils.fileio;

/////////////////////////////////////////////////////////////////////////////

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.channels.FileChannel;
import sheep.controller.Workspace;
/////////////////////////////////////////////////////////////////////////////

// Operations de sauvegarde des projets
public class FileUtils {
  
/////////////////////////////////////////////////////////////////////////////
  
    // Methode uniquement statique
    private FileUtils() {
    }
    
    /////////////////////////////////////////////////////////////////////////////   
    
    private static String fileExtension = "shp";
    
    public static String getFileExtension(){
      return fileExtension;
    }
    
    // Copy un fichier
    public static void copyFile(File oldFile, File newFile) throws Exception {
        // Creer le repertoire si necessaire
        newFile.getParentFile().mkdirs();
        // Creer le fichier si necessaire
        newFile.createNewFile();
        // On copy le fichier
        FileChannel srcChannel = new FileInputStream(oldFile).getChannel();
        FileChannel dstChannel = new FileOutputStream(newFile).getChannel();
        dstChannel.transferFrom(srcChannel, 0, srcChannel.size());
        srcChannel.close();
        dstChannel.close();
    }
    
    // Sauve le Wks
    public static void saveWks(File saveDir) throws Exception {
        // Creer le repertoire si necessaire
        saveDir.mkdirs();
        // Creation du fichier
        File wksData = new File(saveDir.getAbsolutePath() + "/wks-data."+fileExtension);
        // Creation du fichier !throw excption
        wksData.createNewFile();
        // Creation du stream d'ecriture
        OutputStream out = new FileOutputStream(wksData);
        
        ///////////////////
        // TO DO sauvegarde
        ///////////////////
        
        // fermeture
        out.close();
    }
    
    public static Workspace readWks(File readDir) throws Exception {
        // Creation du flot de lecture ! throw exception
        InputStream in = new FileInputStream(readDir.getAbsolutePath() + "/wks-data."+fileExtension);

        // fermeture du fichier
        in.close();
        return null;
    }
  /////////////////////////////////////////////////////////////////////////////

}

/////////////////////////////////////////////////////////////////////////////